﻿#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>
//
//int check_sys(int n)
//{
//	return *((char*)&n);
//}
//
//int main()
//{
//	int n = 1;
//
//	int ret = check_sys(n);
//	if (ret == 1)
//	{
//		printf("小端存储\n");
//	}
//	else
//	{
//		printf("小端存储\n");
//	}
//
//	return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//	int a = 0x11223344;
//
//	return 0;
//}


////代码1
//#include <stdio.h>
//
//int check_sys()
//{
//	//1的源码：00000000 00000000 00000000 00000001
//	//正数的原反补相同
//	int i = 1;
//
//	//int---4个字节大小
//	//由于i是整形数据，首先取出i的地址，强制类型转换为char *访问一个字节的数据
//	//返回0就证明是计算机是大端存储，返回1则相反
//	return (*(char*)&i);
//}
//
//int main()
//{
//	int ret = check_sys();
//
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//
//	return 0;
//}



////代码2
//#include <stdio.h>
//
//int check_sys()
//{
//	union
//	{
//		int i;
//		char c;
//	}un;
//
//	un.i = 1;
//
//	return un.c;
//}
//
//int main()
//{
//	int ret = check_sys();
//
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//
//	return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//	//-1的源码：10000000 00000000 00000000 00000001
//	//-1的反码：11111111 11111111 11111111 11111110
//	//-1的补码：11111111 11111111 11111111 11111111
//	//由于a是char类型，数据截断---11111111
//	//打印a使用的是%d类型--整形类型--会将数据补齐--补符号位--11111111 11111111 11111111 11111111
//	//将a的补码转换为源码进行打印--10000000 00000000 00000000 00000001--打印-1
//	char a = -1;
//
//	//和上面char类型一样的原理--打印-1
//	signed char b = -1;
//
//	//-1的源码：10000000 00000000 00000000 00000001
//	//-1的反码：11111111 11111111 11111111 11111110
//	//-1的补码：11111111 11111111 11111111 11111111
//	//由于c是unsigned char类型，数据截断---11111111
//	//打印的时候会把c看作无符号字符类型8位数据
//	//数据补齐--高位补0--00000000 00000000 00000000 11111111
//	//正数的原反补相同:所以会打印00000000 00000000 00000000 11111111--255
//	unsigned char c = -1;
//
//	printf("a=%d,b=%d,c=%d", a, b, c);
//
//	return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//	//-128的源码:10000000 00000000 00000000 10000000
//	//-128的反码:11111111 11111111 11111111 01111111
//	//-128的补码:11111111 11111111 11111111 10000000
//	//a是char型数据--存储时发生数据截断---10000000
//	//将10000000高位使用1补齐(由于char是有符号浮点型)---11111111 11111111 11111111 10000000
//	//使用%u进行打印数据时，打印的是无符号整型--相当于把上面一行数据当成整形进行打印
//	//正数原反补相同，直接打印11111111 11111111 11111111 10000000
//	char a = -128;
//
//	printf("%u\n", a);
//
//	return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//	//128的源反补码:00000000 00000000 00000000 10000000
//	//a是char型数据--存储时发生数据截断---10000000
//	//将10000000高位使用1补齐(由于char是有符号浮点型)---11111111 11111111 11111111 10000000
//	//使用%u进行打印数据时，打印的是无符号整型--相当于把上面一行数据当成整形进行打印
//	//正数原反补相同，直接打印11111111 11111111 11111111 10000000
//	char a = 128;
//
//	printf("%u\n", a);
//
//	return 0;
//}


#include <stdio.h>

int main()
{
	char a[1000];
	int i;

	for (i = 0; i < 1000; i++)
	{
		a[i] = -1 - i;
	}

	printf("%d", strlen(a));

	return 0;
}